{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# TensorFlow 使用皮尔逊相关系数找出和标签相关性最大的特征值\n",
    "我使用加利福尼亚州房价数据来作例子。训练集和验证集用到的CSV文件在这里：https://download.csdn.net/download/zhangchao19890805/10584496\n",
    "\n",
    "测试集用到的CSV文件在这里：\n",
    "https://download.csdn.net/download/zhangchao19890805/10631336\n",
    "\n",
    "在实际应用的时候，我们往往会收集多个维度的特征值。然而这些特征值未必都能派上用场。有些特征值可能和标签没有什么太大关系，而另外一些特征值可能和标签有很大的相关性。相关性不大的特征值对于训练模型没有太大用处，还会影响性能。因此，最佳方式是找到相关性最大的几个特征值来训练模型。\n",
    "\n",
    "那么，如何才能找到相关性最大的几个特征值呢？\n",
    "\n",
    "为了解决这个问题，我们引入了皮尔逊相关系数（Pearson correlation coefficient）这一个数学工具。这里是皮尔逊相关系数的维基百科。 简单的解释，皮尔逊相关系数是衡量两个变量X和Y 线性相关性的工具。设 p 代表皮尔逊相关系数，p 是实数， p 大于等于 -1 并且 p 小于等于 1。其中0代表没有线性相关，-1 代表负线性相关，1代表正线性相关。具体看下面的图就会一目了然：\n",
    "\n",
    "\n",
    "\n",
    "Python 的 pandas.DataFrame.corr 函数默认使用皮尔逊系数计算各个特征值的相关性，在本文的Demo中有演示。本文仍然使用加利福尼亚房价的那套数据进行演示。\n",
    "\n",
    "我先写了个 ZcSummary 类来展示一下数据集的概要情况。这种做法在实际应用中可以及时发现数据集的异常情况。\n",
    "\n",
    "ZcSummary :\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import math\n",
    "from sklearn import metrics\n",
    "from IPython import display\n",
    "\n",
    "class ZcSummary:\n",
    "    # 从CSV文件中读取数据，返回DataFrame类型的数据集合。\n",
    "    def read_csv(self):\n",
    "        v_dataframe = pd.read_csv(\"california_housing_train.csv\", sep=\",\")\n",
    "        # 打乱数据集合的顺序。有时候数据文件有可能是根据某种顺序排列的，会影响到我们对数据的处理。\n",
    "        v_dataframe = v_dataframe.reindex(np.random.permutation(v_dataframe.index))\n",
    "        return v_dataframe\n",
    "    \n",
    "    # 预处理特征值\n",
    "    def preprocess_features(self, california_housing_dataframe):\n",
    "        selected_features = california_housing_dataframe[\n",
    "            [\"latitude\",\n",
    "             \"longitude\",\n",
    "             \"housing_median_age\",\n",
    "             \"total_rooms\",\n",
    "             \"total_bedrooms\",\n",
    "             \"population\",\n",
    "             \"households\",\n",
    "             \"median_income\"]\n",
    "        ]\n",
    "        processed_features = selected_features.copy()\n",
    "        # 增加一个新属性：人均房屋数量。\n",
    "        processed_features[\"rooms_per_person\"] = (\n",
    "            california_housing_dataframe[\"total_rooms\"] /\n",
    "            california_housing_dataframe[\"population\"])\n",
    "        return processed_features\n",
    "\n",
    "\n",
    "    # 预处理标签\n",
    "    def preprocess_targets(self, california_housing_dataframe):\n",
    "        output_targets = pd.DataFrame()\n",
    "        # 数值过大可能引起训练过程中的错误。因此要把房价数值先缩小成原来的\n",
    "        # 千分之一，然后作为标签值返回。\n",
    "        output_targets[\"median_house_value\"] = (\n",
    "            california_housing_dataframe[\"median_house_value\"] / 1000.0)\n",
    "        return output_targets\n",
    "    \n",
    "     # 主函数\n",
    "    def main(self):\n",
    "        tf.logging.set_verbosity(tf.logging.ERROR)\n",
    "        pd.options.display.max_rows = 10\n",
    "        pd.options.display.float_format = '{:.1f}'.format\n",
    "        \n",
    "        california_housing_dataframe = self.read_csv()\n",
    "        # 对于训练集，我们从共 17000 个样本中选择前 12000 个样本。\n",
    "        training_examples = self.preprocess_features(california_housing_dataframe.head(12000))\n",
    "        training_targets = self.preprocess_targets(california_housing_dataframe.head(12000))\n",
    "        # 对于验证集，我们从共 17000 个样本中选择后 5000 个样本。\n",
    "        validation_examples = self.preprocess_features(california_housing_dataframe.tail(5000))\n",
    "        validation_targets = self.preprocess_targets(california_housing_dataframe.tail(5000))\n",
    "        \n",
    "        # 展示数据集的概要情况。\n",
    "        print(\"Training examples summary:\")\n",
    "        display.display(training_examples.describe())\n",
    "        print(\"Validation examples summary:\")\n",
    "        display.display(validation_examples.describe())\n",
    "\n",
    "        print(\"Training targets summary:\")\n",
    "        display.display(training_targets.describe())\n",
    "        print(\"Validation targets summary:\")\n",
    "        display.display(validation_targets.describe())\n",
    "\n",
    "t = ZcSummary()\n",
    "t.main()\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "程序运行结果："
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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AggggAACCFxBgID0CnhcigACCCCAAAIIIIAAAgggcHkBAtLL23ElAggggAACCCCAAAIIIIDAFQQISK+Ax6UIIIAAAggggAACCCCAAAKXFyAgvbwdVyKAAAIIIIAAAggggAACCFxBgID0CnhcigACCCCAAAIIIIAAAgggcHkBAtLL23ElAggggAACCCCAAAIIIIDAFQQISK+Ax6UIIIAAAggggAACCCCAAAKXFyAgvbwdVyKAAAIIIIAAAggggAACCFxBgID0CnhcigACCCCAAAIIIIAAAgggcHkBAtLL23ElAggggAACCCCAAAIIIIDAFQQISK+Ax6UIIIAAAggggAACCCCAAAKXFyAgvbwdVyKAAAIIIIAAAggggAACCFxBgID0CnhcigACCCCAAAIIIIAAAgggcHkBAtLL23ElAggggAACCCCAAAIIIIDAFQQISK+Ax6UIIIAAAggggAACCCCAAAKXFyAgvbwdVyKAAAIIIIAAAggggAACCFxBgID0CnhcigACCCCAAAIIIIAAAgggcHkBAtLL23ElAggggAACCCCAAAIIIIDAFQQISK+Ax6UIIIAAAggggAACCCCAAAKXFyAgvbwdVyKAAAIIIIAAAggggAACCFxBgID0CnhcigACCCCAAAIIIIAAAgggcHkBAtLL23ElAggggAACCCCAAAIIIIDAFQQISK+Ax6UIIIAAAggggAACCCCAAAKXFyAgvbwdVyKAAAIIIIAAAggggAACCFxBgID0CnhcigACCCCAAAIIIIAAAgggcHkBAtLL23ElAggggAACCCCAAAIIIIDAFQQISK+Ax6UIIIAAAggggAACCCCAAAKXFyAgvbwdVyKAAAIIIIAAAggggAACCFxBgID0CnhcigACCCCAAAIIIIAAAgggcHkBAtLL23ElAggggAACCCCAAAIIIIDAFQQISK+Ax6UIIIAAAggggAACCCCAAAKXFyAgvbxdx1+5M51SKjWtHavpzrRSqZSm3Yc3UPWjZQ2nUhpePnoDmbc5yzdt1+bmUTwCCCCAAAIIIIAAAu0SeKtdBVPuDQuMrqpcXr3hQikOAQQQQAABBBBAAAEEEGgswAxpY5ubOxPOwA1PT7tZRpvJTA0va2d52M1q2ueqmcdwNtKlKnTokQAAIABJREFUSw0rOil5VLlmWs+jLaiZ5TtNZ7Ookfz9TGek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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "现在，我们要计算一下皮尔逊系数。ZcPearson类为我计算出了所有的皮尔逊相关系数，并展示了出来，下面是代码："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import math\n",
    "from sklearn import metrics\n",
    "from IPython import display\n",
    "\n",
    "class ZcPearson:\n",
    "    # 从CSV文件中读取数据，返回DataFrame类型的数据集合。\n",
    "    def read_csv(self):\n",
    "        v_dataframe = pd.read_csv(\"http://114.116.18.230/california_housing_train.csv\", sep=\",\")\n",
    "        # 打乱数据集合的顺序。有时候数据文件有可能是根据某种顺序排列的，会影响到我们对数据的处理。\n",
    "        v_dataframe = v_dataframe.reindex(np.random.permutation(v_dataframe.index))\n",
    "        return v_dataframe\n",
    "    \n",
    "    # 预处理特征值\n",
    "    def preprocess_features(self, california_housing_dataframe):\n",
    "        selected_features = california_housing_dataframe[\n",
    "            [\"latitude\",\n",
    "             \"longitude\",\n",
    "             \"housing_median_age\",\n",
    "             \"total_rooms\",\n",
    "             \"total_bedrooms\",\n",
    "             \"population\",\n",
    "             \"households\",\n",
    "             \"median_income\"]\n",
    "        ]\n",
    "        processed_features = selected_features.copy()\n",
    "        # 增加一个新属性：人均房屋数量。\n",
    "        processed_features[\"rooms_per_person\"] = (\n",
    "            california_housing_dataframe[\"total_rooms\"] /\n",
    "            california_housing_dataframe[\"population\"])\n",
    "        return processed_features\n",
    "\n",
    "\n",
    "    # 预处理标签\n",
    "    def preprocess_targets(self, california_housing_dataframe):\n",
    "        output_targets = pd.DataFrame()\n",
    "        # 数值过大可能引起训练过程中的错误。因此要把房价数值先缩小成原来的\n",
    "        # 千分之一，然后作为标签值返回。\n",
    "        output_targets[\"median_house_value\"] = (\n",
    "            california_housing_dataframe[\"median_house_value\"] / 1000.0)\n",
    "        return output_targets\n",
    "    \n",
    "     # 主函数\n",
    "    def main(self):\n",
    "        tf.logging.set_verbosity(tf.logging.ERROR)\n",
    "        pd.options.display.max_rows = 10\n",
    "        pd.options.display.float_format = '{:.1f}'.format\n",
    "        \n",
    "        california_housing_dataframe = self.read_csv()\n",
    "        # 对于训练集，我们从共 17000 个样本中选择前 12000 个样本。\n",
    "        training_examples = self.preprocess_features(california_housing_dataframe.head(12000))\n",
    "        training_targets = self.preprocess_targets(california_housing_dataframe.head(12000))\n",
    "        # 对于验证集，我们从共 17000 个样本中选择后 5000 个样本。\n",
    "        validation_examples = self.preprocess_features(california_housing_dataframe.tail(5000))\n",
    "        validation_targets = self.preprocess_targets(california_housing_dataframe.tail(5000))\n",
    "        \n",
    "        # 计算出各个特征值和标签值之间的皮尔逊相关系数，并打印出来\n",
    "        correlation_dataframe = training_examples.copy()\n",
    "        correlation_dataframe[\"target\"] = training_targets[\"median_house_value\"]\n",
    "        corr_result = correlation_dataframe.corr()\n",
    "        print(corr_result)\n",
    "\n",
    "        \n",
    "        \n",
    "t = ZcPearson()\n",
    "t.main()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "运行结果：\n",
    "\n",
    "\n",
    "\n",
    "查看结果，皮尔逊相关系数最大的特征值是median_income。除此之外，我们还希望有一些相互之间的相关性不太密切的特征，以便它们添加独立信息。从结果中看，可以认为纬度 latitude 比较符合要求。这样，我们确定了要训练的特征值是 median_income 和 latitude。现在我们开始训练模型，使用 ZcTrain 类：\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import math\n",
    "from sklearn import metrics\n",
    "from IPython import display\n",
    "  \n",
    "\n",
    "class ZcTrain:\n",
    "    # 从CSV文件中读取数据，返回DataFrame类型的数据集合。\n",
    "    def read_csv(self):\n",
    "        v_dataframe = pd.read_csv(\"http://114.116.18.230/california_housing_train.csv\", sep=\",\")\n",
    "        # 打乱数据集合的顺序。有时候数据文件有可能是根据某种顺序排列的，会影响到我们对数据的处理。\n",
    "        v_dataframe = v_dataframe.reindex(np.random.permutation(v_dataframe.index))\n",
    "        return v_dataframe\n",
    "    \n",
    "    \n",
    "    \n",
    "    # 预处理特征值\n",
    "    def preprocess_features(self, california_housing_dataframe):\n",
    "        selected_features = california_housing_dataframe[\n",
    "            [\"latitude\",\n",
    "             \"longitude\",\n",
    "             \"housing_median_age\",\n",
    "             \"total_rooms\",\n",
    "             \"total_bedrooms\",\n",
    "             \"population\",\n",
    "             \"households\",\n",
    "             \"median_income\"]\n",
    "        ]\n",
    "        processed_features = selected_features.copy()\n",
    "        # 增加一个新属性：人均房屋数量。\n",
    "        processed_features[\"rooms_per_person\"] = (\n",
    "            california_housing_dataframe[\"total_rooms\"] /\n",
    "            california_housing_dataframe[\"population\"])\n",
    "        return processed_features\n",
    "\n",
    "\n",
    "    # 预处理标签\n",
    "    def preprocess_targets(self, california_housing_dataframe):\n",
    "        output_targets = pd.DataFrame()\n",
    "        # Scale the target to be in units of thousands of dollars.\n",
    "        output_targets[\"median_house_value\"] = (\n",
    "            california_housing_dataframe[\"median_house_value\"] / 1000.0)\n",
    "        return output_targets\n",
    "    \n",
    "    \n",
    "    # 根据数学模型计算预测值。公式是 y = w0 + w1 * x1 + w2 * x2 .... + wN * xN\n",
    "    def fn_predict(self, pa_dataframe, pa_weight_arr):\n",
    "        v_result = []\n",
    "        v_weight_num = len(pa_weight_arr)\n",
    "        for var_row_index in pa_dataframe.index:\n",
    "            y = pa_weight_arr[0]\n",
    "            for v_index in range(v_weight_num-1):\n",
    "                y = y + pa_weight_arr[v_index + 1] * pa_dataframe.loc[var_row_index].values[v_index]\n",
    "            v_result.append(y)\n",
    "        return v_result\n",
    "    \n",
    "\n",
    "    # 训练形如 y = w0 + w1 * x1 + w2 * x2 + ...  的直线模型。x1 x2 ...是自变量，\n",
    "    # w0 是常数项，w1 w2 ... 是对应自变量的权重。\n",
    "    # feature_arr 特征值的矩阵。每一行是 [1.0, x1_data, x2_data, ...] \n",
    "    # label_arr 标签的数组。相当于 y = kx + b 中的y。\n",
    "    # training_steps 训练的步数。即训练的迭代次数。\n",
    "    # period         误差报告粒度\n",
    "    # learning_rate 在梯度下降算法中，控制梯度步长的大小。\n",
    "    def fn_train_line(self, feature_arr, label_arr, validate_feature_arr, validate_label_arr, training_steps, periods, learning_rate):\n",
    "        feature_tf_arr = feature_arr\n",
    "        label_tf_arr = np.array([[e] for e in label_arr]).astype(np.float32)\n",
    "        # 整个训练分成若干段，即误差报告粒度，用periods表示。\n",
    "        # steps_per_period 表示平均每段有多少次训练\n",
    "        steps_per_period = training_steps / periods\n",
    "        # 存放 L2 损失的数组\n",
    "        loss_arr = []\n",
    "        # 权重数组的长度。也就是权重的个数。\n",
    "        weight_arr_length = len(feature_arr[0])\n",
    "        # 开启TF会话，在TF 会话的上下文中进行 TF 的操作。\n",
    "        with tf.Session() as sess:\n",
    "            # 训练集的均方根误差RMSE。这是保存误差报告的数组。\n",
    "            train_rmse_arr = []\n",
    "            # 验证集的均方根误差RMSE。\n",
    "            validate_rmse_arr = []\n",
    "\n",
    "            # 设置 tf 张量（tensor）。注意：TF会话中的注释里面提到的常量和变量是针对TF设置而言，不是python语法。\n",
    "\n",
    "            # 因为在TF运算过程中，x作为特征值，y作为标签\n",
    "            # 是不会改变的，所以分别设置成input 和 target 两个常量。\n",
    "            # 这是 x 取值的张量。设一共有m条数据，可以把input理解成是一个m行2列的矩阵。矩阵第一列都是1，第二列是x取值。\n",
    "            input = tf.constant(feature_tf_arr)\n",
    "            # 设置 y 取值的张量。target可以被理解成是一个m行1列的矩阵。 有些文章称target为标签。\n",
    "            target = tf.constant(label_tf_arr)\n",
    "\n",
    "            # 设置权重变量。因为在每次训练中，都要改变权重，来寻找L2损失最小的权重，所以权重是变量。\n",
    "            # 可以把权重理解成一个多行1列的矩阵。初始值是随机的。行数就是权重数。\n",
    "            weights = tf.Variable(tf.random_normal([weight_arr_length, 1], 0, 0.1))\n",
    "\n",
    "            # 初始化上面所有的 TF 常量和变量。\n",
    "            tf.global_variables_initializer().run()\n",
    "            # input 作为特征值和权重做矩阵乘法。m行2列矩阵乘以2行1列矩阵，得到m行1列矩阵。\n",
    "            # yhat是新矩阵，yhat中的每个数 yhat' = w0 * 1 + w1 * x1 + w2 * x2 ...。 \n",
    "            # yhat是预测值，随着每次TF调整权重，yhat都会变化。\n",
    "            yhat = tf.matmul(input, weights)\n",
    "            # tf.subtract计算两个张量相减，当然两个张量必须形状一样。 即 yhat - target。\n",
    "            yerror = tf.subtract(yhat, target)\n",
    "            # 计算L2损失，也就是方差。\n",
    "            loss = tf.nn.l2_loss(yerror)\n",
    "            # 梯度下降算法。\n",
    "            zc_optimizer = tf.train.GradientDescentOptimizer(learning_rate)\n",
    "            # 注意：为了安全起见，我们还会通过 clip_gradients_by_norm 将梯度裁剪应用到我们的优化器。\n",
    "            # 梯度裁剪可确保梯度大小在训练期间不会变得过大，梯度过大会导致梯度下降法失败。\n",
    "            zc_optimizer = tf.contrib.estimator.clip_gradients_by_norm(zc_optimizer, 5.0)\n",
    "            zc_optimizer = zc_optimizer.minimize(loss)\n",
    "            for _ in range(periods):\n",
    "                for _ in range(steps_per_period):\n",
    "                    # 重复执行梯度下降算法，更新权重数值，找到最合适的权重数值。\n",
    "                    sess.run(zc_optimizer)\n",
    "                    # 每次循环都记录下损失loss的值，并放到数组loss_arr中。\n",
    "                    loss_arr.append(loss.eval())\n",
    "                v_tmp_weight_arr = weights.eval()\n",
    "                # 计算均方根误差。其中 np.transpose(yhat.eval())[0] 把列向量转换成一维数组\n",
    "                train_rmse_arr.append(math.sqrt(\n",
    "                        metrics.mean_squared_error(np.transpose(yhat.eval())[0], label_tf_arr)))\n",
    "                validate_rmse_arr.append(math.sqrt(\n",
    "                        metrics.mean_squared_error(self.fn_predict(validate_feature_arr, v_tmp_weight_arr), validate_label_arr)))\n",
    "            # 把列向量转换成一维数组\n",
    "            zc_weight_arr = np.transpose(weights.eval())[0]\n",
    "            zc_yhat = np.transpose(yhat.eval())[0]\n",
    "        return (zc_weight_arr, zc_yhat, loss_arr, train_rmse_arr, validate_rmse_arr)\n",
    "    \n",
    "    \n",
    "    # 构建用于训练的特征值。\n",
    "    # pa_dataframe 原来数据的 Dataframe\n",
    "    # 本质上是用二维数组构建一个矩阵。里面的每个一维数组都是矩阵的一行，形状类似下面这种形式：\n",
    "    #    1.0, x1[0], x2[0], x3[0], ...\n",
    "    #    1.0, x1[1], x2[1], x3[1], ...\n",
    "    #    .........................\n",
    "    # 其中x1, x2, x3 表示数据的某个维度，比如：\"latitude\",\"longitude\",\"housing_median_age\"。\n",
    "    # 也可以看作是公式中的多个自变量。\n",
    "    def fn_construct_tf_feature_arr(self, pa_dataframe):\n",
    "        v_result = []\n",
    "        # dataframe中每列的名称。\n",
    "        zc_var_col_name_arr = [e for e in pa_dataframe]\n",
    "        # 遍历dataframe中的每行。\n",
    "        for row_index in pa_dataframe.index:\n",
    "            zc_var_tf_row = [1.0]\n",
    "            for i in range(len(zc_var_col_name_arr)):\n",
    "                zc_var_tf_row.append(pa_dataframe.loc[row_index].values[i])\n",
    "            v_result.append(zc_var_tf_row)\n",
    "        return v_result\n",
    "    \n",
    "    # 画损失的变化图。\n",
    "    # pa_ax  Axes\n",
    "    # pa_arr_train_rmse 训练次数。\n",
    "    # pa_arr_validate_rmse 损失变化的记录\n",
    "    def fn_paint_loss(self, pa_ax, pa_arr_train_rmse, pa_arr_validate_rmse):\n",
    "        pa_ax.plot(range(0, len(pa_arr_train_rmse)), pa_arr_train_rmse, label=\"training\", color=\"blue\")\n",
    "        pa_ax.plot(range(0, len(pa_arr_validate_rmse)), pa_arr_validate_rmse, label=\"validate\", color=\"orange\")\n",
    "    \n",
    "    # 主函数\n",
    "    def main(self):\n",
    "        tf.logging.set_verbosity(tf.logging.ERROR)\n",
    "        pd.options.display.max_rows = 10\n",
    "        pd.options.display.float_format = '{:.1f}'.format\n",
    "        \n",
    "        california_housing_dataframe = self.read_csv()\n",
    "        # 对于训练集，我们从共 17000 个样本中选择前 12000 个样本。\n",
    "        training_examples = self.preprocess_features(california_housing_dataframe.head(12000))\n",
    "        training_targets = self.preprocess_targets(california_housing_dataframe.head(12000))\n",
    "        # 对于验证集，我们从共 17000 个样本中选择后 5000 个样本。\n",
    "        validation_examples = self.preprocess_features(california_housing_dataframe.tail(5000))\n",
    "        validation_targets = self.preprocess_targets(california_housing_dataframe.tail(5000))\n",
    "        \n",
    "\n",
    "        # pandas.DataFrame.corr 默认使用皮尔逊相关系数计算相关性。找到和标签相关性\n",
    "        # 最大的特征值。利用这些相关性最大的特征值构建特征值数量最小的特征集。\n",
    "        minimal_features = [\n",
    "            \"median_income\",\n",
    "            \"latitude\",\n",
    "        ]\n",
    "        minimal_training_examples = training_examples[minimal_features]\n",
    "        minimal_validation_examples = validation_examples[minimal_features]\n",
    "        \n",
    "        # 在模型训练开始之前，做好特征值的准备工作。构建适于训练的矩阵。\n",
    "        v_train_feature_arr = self.fn_construct_tf_feature_arr(minimal_training_examples)\n",
    "        \n",
    "        (v_weight_arr, v_yhat, v_loss_arr, v_train_rmse_arr, v_validate_rmse_arr) = self.fn_train_line(v_train_feature_arr, \n",
    "                    training_targets[\"median_house_value\"], minimal_validation_examples, \n",
    "                    validation_targets[\"median_house_value\"], 500, 20, 0.013)\n",
    "        # 打印权重\n",
    "        print(\"weights:  \", v_weight_arr)\n",
    "        print(\"Training RMSE \" + str(v_train_rmse_arr[len(v_train_rmse_arr) - 1]) + \" Validate RMSE: \" + \n",
    "          str(v_validate_rmse_arr[len(v_validate_rmse_arr) - 1]))\n",
    "        \n",
    "        # 画出损失变化曲线\n",
    "        fig = plt.figure()\n",
    "        fig.set_size_inches(5,5)\n",
    "        self.fn_paint_loss(fig.add_subplot(1,1,1), v_train_rmse_arr, v_validate_rmse_arr)\n",
    "        \n",
    "        plt.show()\n",
    "\n",
    "        \n",
    "t = ZcTrain();\n",
    "t.main();\n",
    "    \n",
    "    \n",
    "\n"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "运行结果：\n",
    "\n",
    "![image.png](attachment:image.png)4.png\n",
    "\n",
    "最后，我们用测试集来测试模型："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import math\n",
    "from sklearn import metrics\n",
    "from IPython import display\n",
    "\n",
    "class ZcValidateTest:\n",
    "    # 从CSV文件中读取数据，返回DataFrame类型的数据集合。\n",
    "    def read_csv(self, pa_url):\n",
    "        v_dataframe = pd.read_csv(pa_url, sep=\",\")\n",
    "        # 打乱数据集合的顺序。有时候数据文件有可能是根据某种顺序排列的，会影响到我们对数据的处理。\n",
    "        v_dataframe = v_dataframe.reindex(np.random.permutation(v_dataframe.index))\n",
    "        return v_dataframe\n",
    "    \n",
    "    # 预处理特征值\n",
    "    def preprocess_features(self, california_housing_dataframe):\n",
    "        selected_features = california_housing_dataframe[\n",
    "            [\n",
    "                \"median_income\",\n",
    "                \"latitude\"\n",
    "             ]\n",
    "        ]\n",
    "        processed_features = selected_features.copy()\n",
    "        \n",
    "        return processed_features\n",
    "\n",
    "\n",
    "    # 预处理标签\n",
    "    def preprocess_targets(self, california_housing_dataframe):\n",
    "        output_targets = pd.DataFrame()\n",
    "        # 数值过大可能引起训练过程中的错误。因此要把房价数值先缩小成原来的\n",
    "        # 千分之一，然后作为标签值返回。\n",
    "        output_targets[\"median_house_value\"] = (\n",
    "            california_housing_dataframe[\"median_house_value\"] / 1000.0)\n",
    "        return output_targets\n",
    "    \n",
    "    # 根据数学模型计算预测值。公式是 y = w0 + w1 * x1 + w2 * x2 .... + wN * xN\n",
    "    def fn_predict(self, pa_dataframe, pa_weight_arr):\n",
    "        v_result = []\n",
    "        v_weight_num = len(pa_weight_arr)\n",
    "        for var_row_index in pa_dataframe.index:\n",
    "            y = pa_weight_arr[0]\n",
    "            for v_index in range(v_weight_num-1):\n",
    "                y = y + pa_weight_arr[v_index + 1] * pa_dataframe.loc[var_row_index].values[v_index]\n",
    "            v_result.append(y)\n",
    "        return v_result\n",
    "    \n",
    "     # 主函数\n",
    "    def main(self):\n",
    "        tf.logging.set_verbosity(tf.logging.ERROR)\n",
    "        pd.options.display.max_rows = 10\n",
    "        pd.options.display.float_format = '{:.1f}'.format\n",
    "        \n",
    "        # 通过训练模型得到的权重\n",
    "        v_weight_arr = [0.3756263, 27.861763 , 2.740796 ]\n",
    "        \n",
    "        # 读取验证集\n",
    "        california_housing_dataframe = self.read_csv(\"http://114.116.18.230/california_housing_train.csv\")\n",
    "        # 对于验证集，我们从共 17000 个样本中选择后 5000 个样本。\n",
    "        validation_examples = self.preprocess_features(california_housing_dataframe.tail(5000))\n",
    "        validation_targets = self.preprocess_targets(california_housing_dataframe.tail(5000))\n",
    "        # 根据已经训练得到的模型系数，计算预验证集的预测值。\n",
    "        v_validate_predict_arr = self.fn_predict(validation_examples, v_weight_arr)\n",
    "        # 计算验证集的预测值和标签之间的均方根误差。\n",
    "        validation_root_mean_squared_error = math.sqrt(\n",
    "            metrics.mean_squared_error(v_validate_predict_arr, validation_targets[\"median_house_value\"]))\n",
    "        print(\"validation RMSE:\", validation_root_mean_squared_error)\n",
    "        \n",
    "        # 读取测试集\n",
    "        test_dataframe = self.read_csv(\"http://114.116.18.230/california_housing_test.csv\")\n",
    "        test_examples = self.preprocess_features(test_dataframe)\n",
    "        test_targets = self.preprocess_targets(test_dataframe)\n",
    "        # 计算测试集的预测值\n",
    "        v_test_predict_arr = self.fn_predict(test_examples, v_weight_arr)\n",
    "        # 计算测试集的预测值和标签之间的均方根误差。\n",
    "        test_root_mean_squared_error = math.sqrt(\n",
    "                metrics.mean_squared_error(v_test_predict_arr, test_targets[\"median_house_value\"]))\n",
    "        print(\"test RMSE:\", test_root_mean_squared_error)\n",
    "        \n",
    "\n",
    "        \n",
    "t = ZcValidateTest()\n",
    "t.main()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "运行结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "('validation RMSE:', 88.49264785316481)\n",
    "('test RMSE:', 88.18046581637961)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.2"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
